/**
 * @Author: Jiang Zhongxun
 * @Date: 2024-10-03 21:18:21
 * @FilePath: /Socket/practiceProject/src/utils/parseStringUtil.c
 * @Description: 字符串解析工具接口
 */
#include "../../include/utils/utils.h"

/**
 * 解析字符串函数，将输入的字符串按照特定规则解析，并将结果存入指定数组
 * 本函数的主要作用是解析一个字符数组(allbuf)，并将解析的结果存入另一个字符指针数组(result)。
 * 解析的规则是，当遇到'@'字符时，将其后面的字符串作为下一个解析出来的字符串。
 * @param allbuf 输入的字符数组，包含待解析的字符串
 * @param result 输出的字符指针数组，用于存放解析后的各个字符串
 * @return int 返回值，0表示成功，-1表示失败(通常是因为输入参数为NULL)
 */
int parseStringUtil(char allbuf[], char *result[])
{
    // 参数判断
    if (NULL == allbuf || NULL == result)
    {
        return -1;
    }
    int index = 0;
    result[index++] = allbuf;
    // 按照@字符解析，意味着@之后的就是下一个字符串
    while (*allbuf)
    {
        if ('@' == *allbuf)
        {
            *allbuf = '\0';
            allbuf++;
            result[index++] = allbuf;
        }
        else
        {
            allbuf++;
        }
    }
    return 0;
}
